package day11;

//题目链接：https://www.nowcoder.com/practice/fa0519c4469f4241bbdb7eabe7e3b295

//由题知，假设a礼包x个，b礼包y个，即求ax+by的最大值
//=> 此类题目的解法： 枚举: 先确定1个变量，再确定另外一个变量，依次枚举可能的值

//假设1号礼包选了x个(2苹果1桃子)，则消耗了x个桃子，2*x个苹果，
//故还剩n-2*x个苹果，m-x个桃，剩下的选2号礼包，个数为min(n-2*x,(m-x)/2)(1苹果2桃)
public class 游游的水果大礼包 {
	public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            long n = in.nextInt();
            long m = in.nextInt();
            long a=in.nextInt();
            long b=in.nextInt();
            long ret=0;
            //1号礼包的个数：[0,min(n/2,m)]
            for(int x=0;x<=Math.min(n/2,m);x++){
                //2号礼包的个数：Math.min(n-2x,(m-x)/2)
                long y=Math.min(n-2*x,(m-x)/2);
                ret=Math.max(ret,a*x+b*y);
            }
            System.out.println(ret);
        }
    }
}
